home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
cislib_a
/
bakact.xmo
< prev
next >
Wrap
Text File
|
1995-04-22
|
21KB
|
1 lines
¢MODULE; BACKTRAK.ACT¢ ; by Sam Teague¢¢BYTE Stick0=$278, Trig0=$D010,¢ ChBas=$2F4, Time=$14,¢ MemTop=$6A, Color0=$2C4,¢ Color1=$2C5, Color2=$2C6,¢ Color3=$2C7, Color4=$2C8,¢ GraCtl=$D01D, GPrior=$26F,¢ SDmaCtl=$22F, PMBase=$D407, ¢ Nmien=$D40E, WSync=$D40A,¢ Con=$D01F, Atract=$4D,¢ HPos0=$D000, HPos1=$D001,¢ HPos2=$D002, HPos3=$D003,¢ PMColor0=$2C0, PMColor1=$2C1,¢ PMColor2=$2C2, PMColor3=$2C3,¢ P0PF=$D004, P2PF=$D006,¢ P3PF=$D007, P0PL=$D00C,¢ HPosM0=$D004, HPosM1=$D005,¢ HPosM2=$D006, HPosM3=$D007,¢ HitClr=$D01E, CrSinh=$2F0,¢ StickFlag, SpaceFlag,¢ Dots, OldMemTop, Screen, Speed,¢ X, Y, X0, Y0, X1, Y1, X2, Y2,¢ X3, Y3, OldX0, OldY0, OldX2,¢ OldY2, OldX3, OldY3,¢ RobotCount1, RobotCount2, ¢ BirdCount, Image0, Image1,¢ DotSound, BonusSound, DoorSound,¢ Lives, StartSpeed ¢¢INT RobotSpeed1, RobotSpeed2,¢ BirdDist, RobotDist1,¢ RobotDist2, Score, HighScore ¢¢CARD VDsLst=$200, SDLst=$230,¢ ScRam=$58 ¢¢BYTE POINTER PMRam, Player0, Player1,¢ Player2, Player3,¢ MissleBase¢¢BYTE ARRAY String(10)¢¢; GOOD GUY PLAYER¢BYTE ARRAY¢ Player0Data0= ;DOWN¢ [0 0 0 24 36 36 36 24 60 24 0 0 0 0],¢ Player0Data1= ;UP¢ [0 0 0 24 60 60 60 24 60 24 0 0 0 0],¢ Player0Data2= ;LEFT¢ [0 0 0 24 44 44 44 24 56 24 0 0 0 0],¢ Player0Data3= ;RIGHT¢ [0 0 0 24 52 52 52 24 28 24 0 0 0 0]¢ ¢; BIRD PLAYER¢BYTE ARRAY¢ Player1Data0=¢ [0 0 0 24 36 60 24 219¢ 126 60 36 0 0 0],¢ Player1Data1=¢ [0 0 0 24 36 60 24 24¢ 126 255 36 0 0 0],¢ Player1Data2=¢ [0 0 0 24 36 60 24 24¢ 255 60 36 0 0 0]¢¢; ROBOT PLAYER¢BYTE ARRAY¢ Player2Data0=¢ [0 0 0 255 152 60 102¢ 219 189 36 66 0 0 0],¢ Player2Data1=¢ [0 0 0 60 56 60 102 219¢ 189 36 24 0 0 0],¢ Player2Data2=¢ [0 0 0 255 29 60 102 219¢ 189 36 24 0 0 0],¢ Player2Data3=¢ [0 0 0 60 28 60 102 219¢ 189 36 36 0 0 0]¢¢;FACE, HANDS & FEET PLAYER¢BYTE ARRAY¢ Player3Data0=¢ [0 0 0 0 36 36 36 0 189 0 153 0 0 0],¢ Player3Data1=¢ [0 0 0 0 36 36 36 0 189 0 153 0 0 0],¢ Player3Data2=¢ [0 0 0 0 36 36 36 0 1 0 44 0 0 0],¢ Player3Data3=¢ [0 0 0 0 36 36 36 0 128 0 52 0 0 0]¢¢CARD ARRAY PMData0(4), PMData1(4),¢ PMData2(4), PMData3(4),¢ MissleData(4)¢¢PROC Move_Set()¢ BYTE i, chnum, bit¢ BYTE POINTER base, dest¢ BYTE ARRAY chars=¢ [ 255 255 255 255 255 255 255 255¢ 127 127 127 127 127 127 127 0¢ 0 254 254 254 254 254 254 254¢ 254 254 254 254 254 254 254 0¢ 0 127 127 127 127 127 127 127¢ 0 255 255 255 255 255 255 255¢ 127 127 127 127 127 127 127 127¢ 254 254 254 254 254 254 254 254¢ 0 90 60 66 66 60 90 0¢ 0 255 231 129 129 231 255 0¢ 0 254 254 254 254 254 254 0¢ 0 0 0 24 36 24 0 0 ¢ 0 126 126 126 126 126 126 126¢ 126 126 126 126 126 126 126 0¢ 0 127 127 127 127 127 127 0¢ 0 255 255 255 255 255 255 0¢ 126 126 126 126 126 126 126 126¢ 255 255 255 255 255 255 255 0 ¢ 0 24 24 126 24 60 102 0]¢ MemTop==-8¢ Graphics(17)¢ SDmaCtl=0¢ base=(MemTop)*$100¢ MoveBlock(base,$E000,$400)¢ bit=0¢ chnum=1¢ DO¢ dest=base+8*chnum¢ FOR i=0 TO 7 ¢ DO ¢ dest^=chars(bit)¢ dest==+1 bit==+1¢ OD¢ IF chnum=1 THEN chnum=3¢ ELSEIF chnum<12 THEN chnum==+1¢ ELSEIF chnum=12 THEN chnum=14¢ ELSEIF chnum=14 THEN chnum=15¢ ELSEIF chnum=15 THEN chnum=26¢ ELSEIF chnum=26 THEN chnum=27¢ ELSEIF chnum=27 THEN chnum=29¢ ELSEIF chnum=29 THEN chnum=30¢ ELSEIF chnum=30 THEN chnum=32¢ ELSEIF chnum=32 THEN chnum=56 ¢ ELSEIF chnum=56 THEN chnum=57 ¢ FI ¢ UNTIL chnum>56¢ OD¢RETURN¢¢PROC Dli=*()¢ BYTE color1=$D017, color2=$D018¢ [$48 ; PHA¢ $8D WSync] ; STA WSync¢ color1=14 ; Luminance¢ color2=4 ; Gray background¢ [$68 ; PLA¢ $40] ; RTI¢¢PROC SetDLI()¢ VDsLst=Dli¢ Nmien=$C0¢RETURN¢¢PROC Delay(BYTE jiffies)¢ jiffies==+Time¢ DO UNTIL jiffies=Time OD¢RETURN¢¢BYTE FUNC CheckLocate(BYTE x0,y0)¢ BYTE errflag¢ errflag=0¢ IF x0>53 AND x0<200 AND y0>26¢ AND y0<200 THEN¢ errflag=1¢ FI¢RETURN(errflag)¢¢PROC Song()¢ BYTE ctr¢ FOR ctr=1 TO 2¢ DO ¢ Sound(0,108,10,8) Delay(18)¢ Sound(0,96,10,8) Delay(9)¢ Sound(0,91,10,8) Delay(9) ¢ Sound(0,81,10,8) Delay(18)¢ Sound(0,91,10,8) Delay(9) ¢ Sound(0,96,10,8) Delay(9) ¢ OD¢ Sound(0,121,10,8) Delay(18)¢ Sound(0,108,10,8) Delay(9) ¢ Sound(0,96,10,8) Delay(9) ¢ Sound(0,91,10,8) Delay(18)¢ Sound(0,96,10,8) Delay(9) ¢ Sound(0,108,10,8) Delay(9) ¢ Sound(0,121,10,8) Delay(54)¢ Sound(0,0,0,0) Delay(10)¢RETURN¢¢PROC Color(BYTE C0, BYTE C1, BYTE C2,¢ BYTE C3, BYTE C4)¢ Color0=C0 ¢ Color1=C1 ¢ Color2=C2 ¢ Color3=C3 ¢ Color4=C4 ¢RETURN¢¢PROC Sype(BYTE ARRAY temp_str¢ BYTE POINTER address)¢ BYTE i ¢ BYTE ARRAY ataint=[$40 $00 $20 $60]¢ FOR i=1 TO temp_str(0)¢ DO¢ IF temp_str(i)#155 THEN¢ address^=ataint((temp_str(i)¢ RSH 5)&3)%(temp_str(i)&$9F)¢ address==+1¢ FI¢ OD¢RETURN¢ ¢PROC High_Score()¢ StrI(HighScore,String)¢ Sype(String,ScRam+493)¢ Sype(" ",ScRam+468)¢RETURN¢¢PROC BGNoise()¢ BYTE N=[40], S=[50], bgcount=[0]¢ bgcount==+1 ¢ IF bgcount=5 THEN¢ Sound(0,N,10,2) ¢ N==+2¢ IF N>=S THEN¢ N==-4¢ S=N¢ IF S=40 THEN¢ S=50 ¢ FI¢ FI¢ bgcount=0¢ FI¢RETURN¢¢¢¢PROC Inst()¢ Graphics(0)¢ CrSinh=1¢ Color(0,8,0,8,0)¢ SDmaCtl=$00¢ Position(0,1) Print(" ")¢ Sype("אIJביקפIJבי",ScRam+14)¢ Sype("Your Mission is to get all of the",ScRam+81)¢ Sype("pulsating globules in the maze with",ScRam+121)¢ Sype("as little backtracking as possible.",ScRam+161)¢ Sype("Each globule is worth one point. Each",ScRam+201)¢ Sype("empty space will cost you one point.",ScRam+241)¢ Sype("You have 3 lives. If you touch one of",ScRam+281)¢ Sype("the robots you lose a life. An extra ",ScRam+321)¢ Sype("life is awarded at 3,000 points. If",ScRam+361)¢ Sype("you touch the bird it will cost you 50",ScRam+401)¢ Sype("points. If you open one of the doors",ScRam+441)¢ Sype("in the walls you will recieve 100 extra",ScRam+481)¢ Sype("points. If you touch a multi-color ",ScRam+521)¢ Sype("bonus globule your score is increased",ScRam+561)¢ Sype("by the number of globules you've ",ScRam+601)¢ Sype("already gotten on that maze. You must ",ScRam+641)¢ Sype("return to home base after getting all ",ScRam+681)¢ Sype("the globules. There are 3 screens. ",ScRam+721)¢ Sype("When you finish screen 3 you are ",ScRam+761)¢ Sype("returned to screen 1 and the action ",ScRam+801)¢ Sype("speeds up. Press the fire button to ",ScRam+841)¢ Sype("pause. Move the stick to resume play.",ScRam+881)¢ Sype(" PRESS צקIJפק FOR GAME.",ScRam+921)¢ SDmaCtl=62¢ DO¢ UNTIL Con=6¢ OD¢ DO¢ UNTIL Con#6¢ OD¢RETURN¢¢¢¢PROC Title()¢ Graphics(17)¢ Color(118,50,22,8,0)¢ Sype("BACK TRACK",ScRam+65)¢ Sype("by",ScRam+149)¢ Sype("sam teague",ScRam+165)¢ Sype("≡≥σ≤≤á∩≡⌠Θ∩∈",ScRam+304)¢ Sype("הנפááכדשדכ",ScRam+325)¢ Sype("≡≥σ≤≤á≤σ∮σπ⌠",ScRam+364)¢ Sype("הנפáחמצקפרבקחנמצ",ScRam+382)¢ Sype("≡≥σ≤≤áá≤⌠β≥⌠",ScRam+424)¢ Sype("קנááסכIJך",ScRam+446)¢ Speed=3¢ DO¢ UNTIL Con#6¢ OD¢ DO¢ Delay(10)¢ IF Con=3 THEN¢ Sype(" ",ScRam+244)¢ Speed==-1¢ IF Speed=0 THEN¢ Speed=3¢ FI¢ FI¢ IF Speed=3 THEN¢ Sype("BEGINNER",ScRam+246)¢ ELSEIF Speed=2 THEN¢ Sype("INTERMEDIATE",ScRam+244)¢ ELSEIF Speed=1 THEN¢ Sype("ADVANCED",ScRam+246)¢ FI¢ IF Con=5 THEN Inst() EXIT FI¢ UNTIL Con=6 OR Trig0=0¢ OD¢ StartSpeed=Speed¢ DO¢ UNTIL Con#6 AND Trig0#0¢ OD¢RETURN¢¢PROC Reset()¢ Zero(PMRam+$300,$500)¢ X0=64 Y0=197 X1=47 Y1=29 X2=88¢ Y2=101 X3=160 Y3=101¢ RobotSpeed1=4 RobotSpeed2=4¢ RobotDist1=0 RobotDist2=0¢ RobotCount1=7 RobotCount2=7¢ OldX0=X0 OldY0=Y0 OldX2=X2 OldY2=Y2¢ OldX3=X3 OldY3=Y3 BirdCount=0¢ BirdDist=0 StickFlag=7¢ Image0=0 Image1=0¢ DotSound=0 BonusSound=0 DoorSound=0¢RETURN¢¢PROC Hit_Bad_Guy()¢ SndRst()¢ DoorSound=0 BonusSound=0¢ So